#include "BaseItemPlugin.h"
#include "Expand/PluginsManager.h"
#include "Managers/GameManager.h"
#include "GameSingleton.h"
#include "Log.h"

#include "SubsystemBaseItem.h"


namespace BaseItem
{
    const std::string BaseItemPlugin::PluginDataDirectory = "./Plugins/BaseItem";

    BaseItemPlugin::BaseItemPlugin()
    {
        GameSingleton::gameManager->registerSubsystem<SubsystemBaseItem>();
    }

    void BaseItemPlugin::load() {}

    void BaseItemPlugin::save() {}

    void BaseItemPlugin::getCmds(std::vector<std::string> &cmdVec) {}

    void BaseItemPlugin::processCmd(ChatObj &chatObj, std::vector<std::string> &cmdDataVec) {}

    const std::string &BaseItemPlugin::getPluginName()
    {
        static const std::string pluginName = "基础物品插件";
        return pluginName;
    }

    const std::string &BaseItemPlugin::getIntroduce()
    {
        static const std::string introduce = "第一次进入服务器获得基础装备插件";
        return introduce;
    }

    uint32_t BaseItemPlugin::getUseAuthLevel()
    {
        return 0;
    }

    AuthDisplayType BaseItemPlugin::getDisplayType()
    {
        return AuthDisplayType::Authority;
    }

} // namespace PocketSurvival

extern "C" void initialize()
{
    GameSingleton::pluginsManager->registerPlugin<BaseItem::BaseItemPlugin>();
    Log::Info("成功加载 基础物品 插件");
}
